package 炫彩元素类

import (
	objectbase "gitee.com/go_888/xcgui/xcgui/objectbase"
	xc "gitee.com/go_888/xcgui/xcgui/xc"
)

// X结构_形状对象基类 形状对象基类.
type X结构_形状对象基类 struct {
	objectbase.X结构_窗口组件
}

// 从句柄创建对象.
func X创建形状对象基类并按句柄(句柄 int) *X结构_形状对象基类 {
	p := &X结构_形状对象基类{}
	p.X设置句柄(句柄)
	return p
}

// 从name创建对象, 失败返回nil.
func X创建形状对象基类并按名称(名称 string) *X结构_形状对象基类 {
	handle := xc.X取对象并按名称(名称)
	if handle > 0 {
		p := &X结构_形状对象基类{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID创建对象, 失败返回nil.
func X创建形状对象基类并按UID(UID int32) *X结构_形状对象基类 {
	handle := xc.X取对象并按UID(UID)
	if handle > 0 {
		p := &X结构_形状对象基类{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 从UID名称创建对象, 失败返回nil.
func X创建形状对象基类并按UID名称(名称 string) *X结构_形状对象基类 {
	handle := xc.X取对象并按UID名称(名称)
	if handle > 0 {
		p := &X结构_形状对象基类{}
		p.X设置句柄(handle)
		return p
	}
	return nil
}

// 形状_移除, 从父UI元素或窗口,和父布局对象中移除.
func (s *X结构_形状对象基类) X移除() *X结构_形状对象基类 {
	xc.X形状_移除(s.X句柄)
	return s
}

// 形状_取Z序, 获取形状对象Z序, 成功返回索引值, 否则返回 XC_ID_ERROR.
func (s *X结构_形状对象基类) X取Z序() int32 {
	return xc.X形状_取Z序(s.X句柄)
}

// 形状_重绘, 重绘形状对象.
func (s *X结构_形状对象基类) X重绘() *X结构_形状对象基类 {
	xc.X形状_重绘(s.X句柄)
	return s
}

// 形状_取宽度, 获取内容宽度.
func (s *X结构_形状对象基类) X取宽度() int32 {
	return xc.X形状_取宽度(s.X句柄)
}

// 形状_取高度, 获取内容高度.
func (s *X结构_形状对象基类) X取高度() int32 {
	return xc.X形状_取高度(s.X句柄)
}

// 形状_移动位置.
//
// x: x坐标.
//
// y: y坐标.
func (s *X结构_形状对象基类) X移动位置(x坐标, y坐标 int32) *X结构_形状对象基类 {
	xc.X形状_移动位置(s.X句柄, x坐标, y坐标)
	return s
}

// 形状_取坐标.
//
// pRect: 接收返回坐标.
func (s *X结构_形状对象基类) X取坐标(返回矩形 *xc.X结构_矩形) *X结构_形状对象基类 {
	xc.X形状_取坐标(s.X句柄, 返回矩形)
	return s
}

// 形状_置坐标.
//
// pRect: 坐标.
func (s *X结构_形状对象基类) X设置坐标(矩形 *xc.X结构_矩形) *X结构_形状对象基类 {
	xc.X形状_设置坐标(s.X句柄, 矩形)
	return s
}

// 形状_置逻辑坐标, 设置元素坐标, 逻辑坐标, 包含滚动视图偏移.
//
// pRect: 坐标.
//
// bRedraw: 是否重绘.
func (s *X结构_形状对象基类) X设置逻辑坐标(矩形 *xc.X结构_矩形, 是否重绘 bool) bool {
	return xc.X形状_设置逻辑坐标(s.X句柄, 矩形, 是否重绘)
}

// 形状_取逻辑坐标, 获取元素坐标, 逻辑坐标, 包含滚动视图偏移.
//
// pRect: 坐标.
func (s *X结构_形状对象基类) X取逻辑坐标(矩形 *xc.X结构_矩形) *X结构_形状对象基类 {
	xc.X形状_取逻辑坐标(s.X句柄, 矩形)
	return s
}

// 形状_取基于窗口客户区坐标, 基于窗口客户区坐标.
//
// pRect: 坐标.
func (s *X结构_形状对象基类) X取基于窗口客户区坐标(矩形 *xc.X结构_矩形) *X结构_形状对象基类 {
	xc.X形状_取基于窗口客户区坐标(s.X句柄, 矩形)
	return s
}

// 形状_取内容大小 ,仅计算有效内容, 填充父, 权重依赖父级所以无法计算.
//
// pSize: 接收返回内容大小值.
func (s *X结构_形状对象基类) X取内容大小(返回大小 *xc.X结构_大小) *X结构_形状对象基类 {
	xc.X形状_取内容大小(s.X句柄, 返回大小)
	return s
}

// 形状_显示布局边界, 是否显示布局边界.
//
// bShow: 是否显示.
func (s *X结构_形状对象基类) X显示布局边界(是否显示 bool) *X结构_形状对象基类 {
	xc.X形状_显示布局边界(s.X句柄, 是否显示)
	return s
}

// 形状_调整布局.
func (s *X结构_形状对象基类) X调整布局() *X结构_形状对象基类 {
	xc.X形状_调整布局(s.X句柄)
	return s
}

// 形状_销毁, 销毁形状对象.
func (s *X结构_形状对象基类) X销毁() *X结构_形状对象基类 {
	xc.X形状_销毁(s.X句柄)
	return s
}

// 形状_取位置.
//
// pOutX: 返回X坐标.
//
// pOutY: 返回Y坐标.
func (s *X结构_形状对象基类) X取位置(返回X坐标, 返回Y坐标 *int32) *X结构_形状对象基类 {
	xc.X形状_取位置(s.X句柄, 返回X坐标, 返回Y坐标)
	return s
}

// 形状_置大小.
//
// nWidth: 宽度.
//
// nHeight: 高度.
func (s *X结构_形状对象基类) X设置大小(宽度, 高度 int32) *X结构_形状对象基类 {
	xc.X形状_设置大小(s.X句柄, 宽度, 高度)
	return s
}

// 形状_取大小.
//
// pOutWidth: 返回宽度.
//
// pOutHeight: 返回高度.
func (s *X结构_形状对象基类) X取大小(返回宽度, 返回高度 *int32) *X结构_形状对象基类 {
	xc.X形状_取大小(s.X句柄, 返回宽度, 返回高度)
	return s
}

// 形状_置透明度.
//
// alpha: 透明度.
func (s *X结构_形状对象基类) X设置透明度(透明度 byte) *X结构_形状对象基类 {
	xc.X形状_设置透明度(s.X句柄, 透明度)
	return s
}

// 形状_取透明度, 返回透明度.
func (s *X结构_形状对象基类) X取透明度() byte {
	return xc.X形状_取透明度(s.X句柄)
}
